package uslugi;

import util.*;

import java.util.Date;
import java.util.List;

import klient.Klient;

public class KredytKlienta extends ObjectPlus{
	private long id;
	private Klient klient;
	private Kredyt kredyt;
	private int kwota;
	private int mscSplata;
	private Date data;
	private TypKredytuKlientaEnum typKredytuKlienta;
	
	public KredytKlienta(long id, Klient klient, Kredyt kredyt, int kwota,
			Date data, String typKredytuKlientaS) {
		super();
		this.id = id;
		this.klient = klient;
		this.kredyt = kredyt;
		this.kwota = kwota;
		this.data = data;
		this.typKredytuKlienta = EnumConverter.dajTypKredytuKlienta(typKredytuKlientaS.trim());
		
		obliczMscSplate();
	}
	
	public KredytKlienta(int id, Klient klient, Kredyt kredyt, int kwota,
			Date data, TypKredytuKlientaEnum typKredytuKlienta) {
		super();
		this.id = id;
		this.klient = klient;
		this.kredyt = kredyt;
		this.kwota = kwota;
		this.data = data;
		this.typKredytuKlienta = typKredytuKlienta;
		
		obliczMscSplate();
	}
	
	public KredytKlienta(long id, long idKlienta, long idKredytu, int kwota,
			Date data, String typKredytuKlientaS) {
		super();
		this.id = id;
		
		List<Klient> klienci = null;
		try {
			klienci = ObjectPlus.pobierzEkstensje(Klient.class);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(Klient k: klienci){
			if(k.getId() == idKlienta){
				this.klient = k;
			}
		}
		
		List<Kredyt> kredyty = null;
		try {
			kredyty = ObjectPlus.pobierzEkstensje(Kredyt.class);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		for(Kredyt k: kredyty){
			if(k.getId() == idKredytu){
				this.kredyt = k;
			}
		}
		
		this.kwota = kwota;
		this.data = data;
		this.typKredytuKlienta = EnumConverter.dajTypKredytuKlienta(typKredytuKlientaS.trim());
		
		obliczMscSplate();
	}

	public void obliczMscSplate(){
		int calaKwota = (int)(kwota + (kwota * kredyt.getOprocentowanie()));
		
		this.mscSplata = calaKwota / kredyt.getMaxiloscMiesiecy();
		
		
	}
	
	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}


	public int getKwota() {
		return kwota;
	}

	public void setKwota(int kwota) {
		this.kwota = kwota;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

	public TypKredytuKlientaEnum getTypKredytuKlienta() {
		return typKredytuKlienta;
	}

	public void setTypKredytuKlienta(TypKredytuKlientaEnum typKredytuKlienta) {
		this.typKredytuKlienta = typKredytuKlienta;
	}

	public Klient getKlient() {
		return klient;
	}

	public void setKlient(Klient klient) {
		this.klient = klient;
	}

	public Kredyt getKredyt() {
		return kredyt;
	}

	public void setKredyt(Kredyt kredyt) {
		this.kredyt = kredyt;
	}
	
	public int getMscSplata() {
		return mscSplata;
	}

	public void setMscSplata(int mscSplata) {
		this.mscSplata = mscSplata;
	}

	public void dajInfo(){
		
		System.out.println("Klient: " + klient.getImie() + " " + klient.getNazwisko() + " wzial kredyt dnia " + data);
		System.out.println(kredyt);
		System.out.println("Jest to kredyt typu=" + typKredytuKlienta  + " na kwote=" + kwota + "PLN o msc splacie=" + mscSplata);
		System.out.println("");
	}
	
	
	
}
